// 引入依赖的模块
var path = require('path')
var fs = require('fs')
var mime = require('mime')

function myReadFile(filePathname) {
  return new Promise((resolve, reject) => {
    fs.readFile(filePathname, (err, data) => {
      // 错误处理
      if (err) {
        // reject('您访问的页面报错了')
        resolve('您访问的是一个文件夹，且文件夹里没有index.html')
      } else {
        resolve(data)
      }
    });
  })
}

async function readStaticFile(filePathname) {

  var ext = path.parse(filePathname).ext
  var mimeType = mime.getType(ext) || 'text/html'

  let data = null;
  // 判断路径是否有后缀, 有的话则说明客户端要请求的是一个文件 
  if(fs.existsSync(filePathname)) { // 判断文件是否存在
    if (ext) {
      // 根据传入的目标文件路径来读取对应文件
      data = await myReadFile(filePathname)
    } else {
      data = await myReadFile(path.join(filePathname, '/index.html'))
    }
  } else {
    data = 'file or folder not found.'
  }
  return {
    mimeType,
    data
  }
}

// 导出函数
module.exports = readStaticFile